import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// 自定义指令
import '@/directive/index'
// 公共样式
import '@/common/style/index.less'
// 全局方法
import { deepClone, parsedMarkdown, downloadFile, convertToTime } from '@/utils/index.js'
Vue.prototype.$deepClone = deepClone
Vue.prototype.$parsedMarkdown = parsedMarkdown
Vue.prototype.$downloadFile = downloadFile
Vue.prototype.$convertToTime = convertToTime
Vue.use(ElementUI)
Vue.config.productionTip = false
Vue.prototype.BaseApi = process.env.VUE_APP_BASE_API
Vue.directive('html-model', {
  twoWay: true, // 声明双向绑定
  bind(el, binding, vnode) {
    // 初始化内容
    el.innerHTML = binding.value

    // 监听内容变化并更新数据
    el.addEventListener('input', function () {
      vnode.context[binding.expression] = el.innerHTML
    })
  },
  update(el, binding) {
    // 防止循环更新（当数据变化时更新DOM）
    if (el.innerHTML !== binding.value) {
      el.innerHTML = binding.value
    }
  },
})
new Vue({
  router,
  render: (h) => h(App),
}).$mount('#app')
